home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Sample Code / Snippets / Processes / Process / proc.c next >
Encoding:
C/C++ Source or Header  |  1994-11-11  |  2.4 KB  |  75 lines  |  [TEXT/MPS ]

  1. /*
  2. ** James "im" Beninghaus
  3. */
  4.  
  5.  
  6. #include    <Errors.h>
  7. #include    <OSUtils.h>
  8. #include    <Processes.h>
  9. #include    <stdio.h>
  10.  
  11.  
  12. main () {
  13.     
  14.     auto    OSErr                osErr            = noErr;
  15.     auto    ProcessSerialNumber    process;
  16.     auto    ProcessInfoRec        procInfo;
  17.     auto    Str255                procName;
  18.     auto    DateTimeRec            launchDateTime;        
  19.             FSSpec              appFSSpec;
  20.  
  21.     InitGraf((Ptr) &qd.thePort);
  22.     
  23.     
  24.     printf(
  25.         "         Process Name                 Number        Type  Signature      Mode   Location   Size   FreeMem      Launcher         LaunchDate        ActiveTime  FileDirID VRefNum  FileName                        "                        
  26.         "\n"
  27.         "-------------------------------- -----------------  ----    ----       -------- -------- -------- -------- ----------------- -------------------   --------   --------  ----     --------------------------------"
  28.         "\n"
  29.     );
  30.     
  31.     process.highLongOfPSN = kNoProcess;
  32.     process.lowLongOfPSN  = kNoProcess;
  33.     
  34.     procInfo.processInfoLength            = sizeof(ProcessInfoRec);
  35.     procInfo.processName                = procName;
  36.     procInfo.processAppSpec             = &appFSSpec;
  37.  
  38.     while (procNotFound != (osErr = GetNextProcess(&process))) {
  39.         if (noErr == (osErr = GetProcessInformation(&process, &procInfo))) {
  40.             if ('\0' == procName[1])
  41.                 procName[1] = '0';
  42.             Secs2Date(procInfo.processLaunchDate, &launchDateTime);
  43.             printf(
  44.                 "%-32P %08lx.%08lx '%c%c%c%c'  '%c%c%c%c'      %08lx %08lx %08lx %08lx %08lx.%08lx %2d/%2d/%2d %2d:%02d:%02d   %08lx   %08ld  %04d     %P\n",
  45.                 procInfo.processName,
  46.                 procInfo.processNumber.highLongOfPSN,
  47.                 procInfo.processNumber.lowLongOfPSN,
  48.                 ((char *) &procInfo.processType)[0],
  49.                 ((char *) &procInfo.processType)[1],
  50.                 ((char *) &procInfo.processType)[2],
  51.                 ((char *) &procInfo.processType)[3],
  52.                 ((char *) &procInfo.processSignature)[0],
  53.                 ((char *) &procInfo.processSignature)[1],
  54.                 ((char *) &procInfo.processSignature)[2],
  55.                 ((char *) &procInfo.processSignature)[3],
  56.                 procInfo.processMode,
  57.                 procInfo.processLocation,
  58.                 procInfo.processSize,
  59.                 procInfo.processFreeMem,
  60.                 procInfo.processLauncher.highLongOfPSN,
  61.                 procInfo.processLauncher.lowLongOfPSN,
  62.                 launchDateTime.month,
  63.                 launchDateTime.day,
  64.                 launchDateTime.year,
  65.                 launchDateTime.hour,
  66.                 launchDateTime.minute,
  67.                 launchDateTime.second,
  68.                 procInfo.processActiveTime,
  69.                 procInfo.processAppSpec -> parID,
  70.                 procInfo.processAppSpec -> vRefNum,
  71.                 procInfo.processAppSpec -> name
  72.             );
  73.         }
  74.     }
  75. }